package com.example.myapplicationdemo01.slice;

import com.example.myapplicationdemo01.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.agp.components.Component;

public class MainAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        // 在当前slice中渲染试图组件有2中方式：
        // 1. 基于Java代码的渲染
        // 2. 基于xml标签渲染，例如: super.setUIContent(ResourceTable.Layout_ability_main);
        super.setUIContent(ResourceTable.Layout_ability_main);

        // 1. 获取id=btn1的按钮组件
        Button btn1 = (Button) this.findComponentById(ResourceTable.Id_btn1);

//        // 2.设置按钮事件监听
//        MainAbilitySlice _this = this;
//        // a.创建事件监听器
//        Component.ClickedListener clickedListener = new Component.ClickedListener(){
//            @Override
//            public void onClick(Component component) {
//                //挑转到SecondAbilitySlice
//                // 从this指代的当前slice跳转到new的slice中
//                _this.present(new SecondAbilitySlice(), new Intent());
//            }
//        };
//        // b.设置组件的事件监听
//        btn1.setClickedListener(clickedListener);

//        //b.设置组件的事件监听 PS:简化成lambda表达示
//        btn1.setClickedListener(clickedListener->{
//            present(new SecondAbilitySlice(), new Intent() );
//        });

        // b.设置组件的事件监听 PS:简化成lambda表达式 因为listener要实现onclick方法 因为只有一个方法，所以省略大括号
        btn1.setClickedListener(clickedListener -> {
            // 在跳转之前的slice将需要传递的数据设置到Intent对象中
            Intent intent1 = new Intent();
            intent1.setParam("productId", "101");
            present(new SecondAbilitySlice(), intent1);
        });

    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}
